草庐IT

PHP If...Else 语句

全部标签

c++ - "return (0);"函数中的 'main' 语句中的括号 0 - 它们的作用是什么?

这个问题在这里已经有了答案:Whendoextraparentheseshaveaneffect,otherthanonoperatorprecedence?(2个答案)关闭3年前。通常自动生成的c++"main"函数在最后return(0);或return(EXIT_SUCCESS);但是为什么上面的语句中有括号呢?是不是跟C语言什么的有关?//编辑我知道这是正确的,但有人把这些括号放在了一起是有原因的。这是什么原因?!

c++ - while 循环中的高级 switch 语句?

我刚开始使用C++,但对其他语言有一些先验知识(不幸的是,vb回到了一段时间),但遇到了一个奇怪的困境。我不喜欢使用这么多IF语句,并且想使用switch/cases,因为它看起来更干净,而且我想实践一下……但是……假设我有以下场景(理论代码):while(1){//Loopcanbeconditionalor1,Iuseitalot,forexampleinmygamecharsomething;std::cout";std::cin>>something;//Switchtoread"something"switch(something){case'a':cout这就是我的问题。假

c++ - 使用 GCC 优化 C/C++ 循环中的嵌套 if 语句

我正在使用GCC编译器测试C/C++中的各种优化。我目前有一个包含多个嵌套if语句的循环。条件是在程序开始执行时计算的。它看起来有点像这样:boolconditionA=getA();boolconditionB=getB();boolconditionC=getC();//Etc.startTiming();do{if(conditionA){doATrueStuff();if(conditionB){//Etc.}else{//Etc.}}else{doAFalseStuff();if(conditionB){//Etc.}else{//Etc.}}}while(testCondi

c++ - if 语句中的复合表达式

我偶然发现了执行此操作的能力。#includeusingnamespacestd;intmain(){if(({inti=1024;i==10;})){cout重要的反汇编区域好像是:->0x10000118f:movl$0x400,-0x18(%rbp);imm=0x4000x100001196:cmpl$0xa,-0x18(%rbp)0x10000119a:sete%al0x10000119d:andb$0x1,%al0x10000119f:movb%al,-0x19(%rbp)0x1000011a2:testb$0x1,-0x19(%rbp)0x1000011a6:je0x100

c++ - 测试用例 VS ASSERTION 语句

在我的大多数C++项目中,我大量使用如下ASSERTION语句:intdoWonderfulThings(constint*fantasticData){ASSERT(fantasticData);if(!fantasticData)return-1;//,,,returnWOW_VALUE;}但是TDD社区似乎喜欢做这样的事情:intdoMoreWonderfulThings(constint*fantasticData){if(!fantasticData)returnERROR_VALUE;//...returnAHA_VALUE;}TEST(TDD_Enjoy){ASSERT_

c++ - If(), else if() c++中的替代方案(这是AI吗?)

首先,我是一个菜鸟。我也是一个从未通过编写代码赚过一毛钱的看门人。这只是我喜欢做的事情。这是为了好玩:)话虽这么说,我写了这个基于控制台的井字游戏,它有足够的人工智能,不会输掉每场比赛。(我想ai应该叫它什么。)它有大约70个if/elseif语句用于计算机。我像这样使用了3个int数组:intL[2],M[2],R[2];0=空白;1=X;2=O;董事会然后“看起来”像L[0]|米[0]|R[0]L[1]|米[1]|R[1]L[2]|米[2]|R[2]所以我基本上写出了我能想到的每一种可能的情况:if(M[0]==1&M[1]==1&M[2]==0){M[2]=2;}//hereth

c++ - 为什么我可以在 switch 语句中将一个 case 放在另一个 case 中?

这是一个switch语句的例子。我不明白为什么会这样:intmain(){intnumber1=100,number2=200;switch(number1){case100:{cout上面的程序打印:100然后打印case200的下一条语句。此外,如果在第二种情况下使用了200以外的任何值,它仍然会被执行。我知道在case100之后没有break。但为什么我没有收到编译时错误?更清楚一点,为什么内层案例中的任何其他值也会成功?例如,case70000: 最佳答案 Butwhydon'tIgetacompile-timeerrori

c++ - 在同一语句中返回传入的临时值并从中读取是否安全?

我只是写了这篇文章,没有想太多。它似乎工作正常,但我不确定它是否绝对安全。classFoo{structBuffer{chardata[sizeof("outputwilllooklikethisXXXXYYYYZZZZ")];};constchar*print(constchar*format=DEFUALT_FORMAT,Buffer&&buf=Buffer()){sort_of_sprintf_thing(format,buf.data,sizeof(buf.data),...);returnbuf.data;}};std::cout所以我认为语义是临时Buffer将一直存在,直

c++ - 为什么对 'case' 语句使用预处理器指令?

我在浏览SpiderMonkey引擎源代码时,在解释器中看到了一些令我感兴趣的代码。//Portableswitch-baseddispatch.#defineINTERPRETER_LOOP()the_switch:switch(switchOp)#defineCASE(OP)caseOP:#defineDEFAULT()default:(来源:https://dxr.mozilla.org/mozilla-b2g44_v2_5/source/js/src/vm/Interpreter.cpp#1579)将caseOP:定义为CASE(OP)是否有任何非风格上的好处?